什么是盒模型

盒模型是css布局的基石,它规定了网页元素如何显示以及元素间相互关系。css定义所有的元素都以拥有可像盒子一样的外形和平面空间,即都包含边框、边界、补白、内容区,这就是盒模型。

盒模型

  1. 填充(内边距)

    padding的使用方法

    填充:padding,在设定页面中一个元素内容到元素的边缘(边框) 之间的距离。 也称补白。
    
    用法:
       1)用来调整子元素在父元素中的位置关系。
       注:padding属性需要添加在父元素上。
      
       2)padding值是额外加在元素原有大小之上的,如想保证元素大小不变,需从元素宽或高上减掉后添加的padding属性值。
        属性值的4种方式:
         四个值:上   右   下   左 {padding:10px   20px   30px    40px;}
         三个值:上    左右    下 {padding:10px   20px   30px ;}
         二个值:上下    左右 {padding:10px   20px  ;}
         一个值:四个方向 padding:2px;/*定义元素四周填充为2px*/
    
    说明:
      可单独设置一方向填充,如:
      上方向padding-top:10px;    
      右方向pahdding-right:10px;   
      下方向padding-bottom:10px;    
      左方向padding-left:10px;
    
    
  2. 外边距

    margin的使用方法

    边界:margin,在元素外边的空白区域,被称为边距。
       margin-left:左边界
       margin-right:右边界
       margin-top:上边界
       margin-bottom:下边界
    
     属性值的4种方式: 
         四个值:上 右 下 左
         三个值:上 左右 下
         二个值:上下 左右
         一个值:四个方向 
            margin:2px;/*定义元素四边边界为2px*/
            margin:2px 4px;/*定义元素上下边界为2px,左右边界为4px/
            margin:2px 4px 6px;/*定义元素上边界为2px,左右边界4px下边界为6px,*/
            margin:2px 4px 6px 8px;/*定义元素上、右边界为2px,下右边界为6px,左边界为8px*/
            margin:0 auto;/*在浏览器中横向居中。*/
    
    说明:可单独设置一方向边界,如:margin-top:10px;
    
       *margin值的解析:左右边界累加,上下边界重合。
        
       *子元素(块)直接写margin-top时,会将margin-top属性值加上父元素身上,(不设置任何浮动及定位的属性的前提下)
    
  3. 边框
    border的使用方法

     border:边框宽度 边框风格 边框颜色;
     例如:border:5px solid #f00
    
       边框:border,网页中很多修饰性线条都是由边框来实现的。
       
       边框宽度:border-width:
       
       边框颜色:border-color:
       
       边框样式:border-style:solid(实线)/dashed(虚线)dotted(点划线)double(双线)
       可单独设置一方向边框,
       
       如:border-bottom:边框宽度 边框风格 边框颜色;底边框
       border-left:边框宽度 边框风格 边框颜色;左边框
       border-right:边框宽度 边框风格 边框颜色;右边框
       border-top:边框宽度 边框风格 边框颜色;上边框
    
  4. 盒子的实际大小

    1)盒子的实际大小:

       宽 =左右border+左右padding+width
       
       高 =上下border+上下padding+height
       例如:一个盒子的 border 为 1px,padding 为 10px,content 的宽为 200px、高为 50px
       
       宽= border*2 + padding*2 + content.width = 20*2 + 1*2 + 10*2 +200 = 262px
       
       高= border*2 + padding*2 + content.height = 20*2 + 1*2 +10*2 + 50 = 112px
    

    2)溢出属性

       overflow:visible/hidden(隐藏)/scroll/auto(自动)/inherit;
      
       visible:默认值,内容不会被修剪,会成现在元素框之外;
       
       hidden:内容会被修剪,并且其余内容是不可见的;
      
       scroll:内容会被修剪,但是浏览器会显示滚动条,以便查看其余的内容;
       
       auto:如果内容被修剪,则浏览器会显示滚动条,以便查看其他的内容;
      
       inherit:规定应该从父元素继承overflow属性的值。
    

    3)空余空间

       white-space:normal/pre/nowrap/pre-wrap /pre-line /inherit
       该属性用来设置如何处理元素内的空白;
       
       normal:默认值,空白会被浏览器忽略,
       
       pre:空白会被浏览器保留,其行为方式类似HTML中的pre标签;
       
       nowrap:文本不会换行,文本会在同一行上继续,直到遇到<br/>标签为止;
      
       pre-wrap:保留空白符序列,文字超出边界时会正常换行;
      
       pre-line:合并空白符序列,但是保留换行符;
       
       inherit:规定应该从父元素继承White-space属性的值;(ie浏览器不支持此属性值)

Petrichor
1 声望0 粉丝